package org.dromara.datacheck.domain.vo.jst;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import org.dromara.datacheck.domain.jst.JstAfterSaleOrder;

import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;


/**
 * 聚水潭-售后单视图对象 jst_after_sale_order
 *
 * @author 刘武贵
 * @date 2024-09-08
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = JstAfterSaleOrder.class)
public class JstAfterSaleOrderVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    @ExcelProperty(value = "id")
    private Long id;

    /**
     * 售后单号
     */
    @ExcelProperty(value = "售后单号")
    private String afterSaleNumber;

    /**
     * 内部订单号
     */
    @ExcelProperty(value = "内部订单号")
    private String innerOrderNumber;

    /**
     * 线上类型
     */
    @ExcelProperty(value = "线上类型")
    private String onlineType;

    /**
     * 售后分类
     */
    @ExcelProperty(value = "售后分类")
    private String afterSaleCategory;

    /**
     * 线上申请金额
     */
    @ExcelProperty(value = "线上申请金额")
    private BigDecimal onlineApplyMoney;

    /**
     * 线上退运费
     */
    @ExcelProperty(value = "线上退运费")
    private BigDecimal onlineQuitFreight;

    /**
     * 优惠或者差额
     */
    @ExcelProperty(value = "优惠或者差额")
    private BigDecimal discountOrDifference;

    /**
     * 卖家应退金额
     */
    @ExcelProperty(value = "卖家应退金额")
    private String sellerShouldQuitMoney;

    /**
     * 买家应补金额
     */
    @ExcelProperty(value = "买家应补金额")
    private BigDecimal buyerShouldSupplementMoney;

    /**
     * 卖家应退运费
     */
    @ExcelProperty(value = "卖家应退运费")
    private BigDecimal sellerShouldQuitFreight;

    /**
     * 实际应退金额
     */
    @ExcelProperty(value = "实际应退金额")
    private BigDecimal actualQuitMoney;

    /**
     * 店铺编号
     */
    @ExcelProperty(value = "店铺编号")
    private String shopNumber;

    /**
     * 店铺名称
     */
    @ExcelProperty(value = "店铺名称")
    private String shopName;

    /**
     * 原订单类型（0 普通订单，1 换货订单）
     */
    @ExcelProperty(value = "原订单类型", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=,普=通订单，1,换=货订单")
    private String originalOrderType;

    /**
     * 售后状态（0 待确认，1 已确认，2 作废， 3 被合并， 4 被拆分）
     */
    @ExcelProperty(value = "售后状态", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "0=,待=确认，1,已=确认，2,作=废，,3=,被=合并，,4=,被=拆分")
    private String afterSaleStatus;

    /**
     * 商品编码
     */
    @ExcelProperty(value = "商品编码")
    private String productNumber;

    /**
     * 金蝶的物料编码
     */
    @ExcelProperty(value = "金蝶的物料编码")
    private String jdMaterialCode;

    /**
     * 款式编码
     */
    @ExcelProperty(value = "款式编码")
    private String styleNumber;

    /**
     * 申请数量
     */
    @ExcelProperty(value = "申请数量")
    private Integer applyNumber;

    /**
     * 单价
     */
    @ExcelProperty(value = "单价")
    private BigDecimal unitPrice;

    /**
     * 申请金额
     */
    @ExcelProperty(value = "申请金额")
    private BigDecimal applyPrice;

    /**
     * 售后单类型
     */
    @ExcelProperty(value = "售后单类型")
    private String afterSaleType;

    /**
     * 颜色规格
     */
    @ExcelProperty(value = "颜色规格")
    private String colorSku;

    /**
     * 原订单下单金额
     */
    @ExcelProperty(value = "原订单下单金额")
    private BigDecimal originalOrderPrice;

    /**
     * 最后确认时间（用于搜索）
     */
    @ExcelProperty(value = "最后确认时间")
    private Date newOrderDate;

    /**
     * 最后确认时间（用于业务操作）
     */
    @ExcelProperty(value = "最后确认时间")
    private String lastConfirmationTime;

    /**
     * 特殊处理的日期，用于和金蝶单据比对
     */
    private String compareDateToJd;
}
